package com.mindai.esper.monitor.biz.domain.reponsitory;

import com.mindai.esper.monitor.biz.domain.model.*;

import java.util.List;

/**
 * Created by Administrator on 2017/8/15.
 */
public interface IEsperRepository {
    /**
     * 获取对应的Esper数据信息
     *
     * @return
     */
    List<EsperEplModel> queryEsperEpl(EsperEplModel esperEplModel);

    /**
     * 通过EsperId获取数据
     *
     * @param esperId
     * @return
     */
    EsperEplModel getEsperEplByEsperId(String esperId);


    /**
     * 获取Esper的Schema事件类型
     *
     * @param esperSchemaModel
     * @return
     */
    List<EsperSchemaModel> queryEsperSchema(EsperSchemaModel esperSchemaModel);


    /**
     * 获取EsperSchema by ID
     *
     * @param schemaId
     * @return
     */
    EsperSchemaModel getEsperSchemaBySchemaId(String schemaId);


    /**
     * 获取对应的SchemaField
     *
     * @param esperSchemaFieldModel
     * @return
     */
    List<EsperSchemaFieldModel> queryEsperSchemaFieldModel(EsperSchemaFieldModel esperSchemaFieldModel);

    /**
     * 根据eplId获取对应的模型
     *
     * @param eplId
     * @return
     */
    List<EsperSchemaFieldModel> getEsperSchemaFieldModelByEplId(String eplId);

    /**
     * 获取EsperEplThreshold的数据值
     *
     * @param threshold
     * @return
     */
    List<EsperEplThresholdModel> queryEsperEplThreshold(EsperEplThresholdModel threshold);


    /**
     * 获取EsperEplThreshold的数据值
     *
     * @param eplId
     * @return
     */
    List<EsperEplThresholdModel> getEsperEplThresholdByEplId(String eplId);


    /**
     * 查询系统定义的方法
     *
     * @param esperMethodModel
     * @return
     */
    List<EsperMethodModel> queryEsperMethodModel(EsperMethodModel esperMethodModel);

    /**
     * 查询对应的数据库配置
     * @param esperDbModel
     * @return
     */
    List<EsperDbModel> queryEsperDbModel(EsperDbModel esperDbModel);
}
